<?php
// +----------------------------------------------------------------------
// | SL 2018.8.17
// +----------------------------------------------------------------------
// | Copyright (c) 2018~2018 http://sl.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: zq <1040657944@qq.com>
// +----------------------------------------------------------------------

namespace app\common\model;


use think\Model;

class UserModel extends Model
{
    // 确定链接表名
    protected $name = 'user';
    //开启时间戳写入
    protected $autoWriteTimestamp = true;

    /**
     * 插入新的管理
    */
    public function insertUser($param)
    {
        $param['password'] = md5($param['password'] . config('salt'));
        $param['thumb'] = '/static/admin/images/userface6.jpg'; // 默认头像
        try{
            $result =  $this->validate('UserValidate')->save($param);
            if(false === $result){
                // 验证失败 输出错误信息
                return msg(-1, '', $this->getError());
            }else{

                return msg(1, url('user/index'), '增加新的管理员成功!');
            }
        }catch(PDOException $e){

            return msg(-2, '', $e->getMessage());
        }

    }

    /**
     * 查询所有管理员
    */
    public function getAllUsers($where,$offset,$limit)
    {
        return $this->where($where)->limit($offset, $limit)->order('id desc')->select();
    }


    /**
     * 根据搜索条件获取所有的用户数量
     */
    public function getAllUsersCount($where)
    {
        return $this->where($where)->count();
    }

    /**
     * 获取单条数据信息
    */
    public function getOneUser($where)
    {
        return $this->alias('a')->where($where)->join('role r','a.role_id = r.role_id','LEFT')->find();
    }

    /**
     * 编辑管理员信息
     */
    public function editUser($param)
    {
        $param['password'] = md5($param['password'] . config('salt'));
        try{

            $result =  $this->allowField(true)->validate('UserValidate')->save($param, ['id' => $param['id']]);

            if(false === $result){
                // 验证失败 输出错误信息
                return msg(-1, '', $this->getError());
            }else{

                return msg(1, url('user/index'), '编辑管理员成功');
            }
        }catch(PDOException $e){
            return msg(-2, '', $e->getMessage());
        }
    }

    /**
     * 编辑管理员信息
     */
    public function userInfo($param)
    {
        try{
            $result =  $this->allowField(true)->save($param,['username' => $param['username']]);
            if(false === $result){
                // 验证失败 输出错误信息
                return msg(-1, '', $this->getError());
            }else{

                return msg(1, url('user/index'), '个人资料保存成功!');
            }
        }catch(PDOException $e){

            return msg(-2, '', $e->getMessage());
        }
    }

    /**
     * 删除管理员
     */
    public function delUser($id)
    {
        try{

            $this->where('id', $id)->delete();
            return msg(1, '', '删除管理员成功');

        }catch( PDOException $e){
            return msg(-1, '', $e->getMessage());
        }
    }




}